'''
.py后缀的文件就是一个模块
模块可以定义函数 类等
避免函数名类名变量名冲突
提高维护性和重用性
命名时用小写字母，多个字母用_分开
若与内置模块命名冲突，以自定义模块优先
1. 内置模块 py环境安装好自带
2. 自定义模块 自己定义的模块
导入：
    1. import 模块名称 as 别名  导全部
    2. from 模块名称 import 变量/函数/类/* 导特定
'''
'''
包
    一个文件夹下，必须有一个__init__.py文件（可空）
    在其他地方引入该包下的其他模块时，会且只会先执行一次__init__.py
    引入：import 包名.模块名
    可以多级子级嵌套
    ** 一个模块多次重复引入其他包下的模块时，这个包的__init__.py始终先执行一次，如果有多级包，则先父后子
'''
'''
主程序运行
    引入其他模块（py）时，只想要这个模块自己运行的时候才执行
    if __name__ == "__main__":
        执行的代码
    py模块自己运行的时候，__name__变量会变成__main__
'''